

 8:48 2006-11-27
 ڵ   ִ.






//First-chance exception in chat_server.exe (KERNEL32.DLL): 0x000006D9: (no name).
//exception
//First-chance exception in chat_server.exe: 0xC0000005: Access Violation.
//HEAP[chat_server.exe]: HEAP: Free Heap block 170b6c8 modified at 170b738 after it was freed

HEAP  
exception 

PER_SOCKET_CONTEXT * p[MAX];
Ƹ 10000 迭 . Stack Access Violation  ΰ .


׷. exception   ܳ.
 Ƹ. p[i] 迭   critical section ó ̼ ΰ .

p[i] NULL . ->   ϸ exception  .
p[i]->Socket

mutex .
critical section  .

׷. thread иؾ Ұ .

max++  迭  Ѿ  𸥴.



// 
-  ޸  ߿  Ͼ.
-  ޸   Ͱ .   ̷ .

- telnet send ޽  .  recv . sendall ޽ .
- telnet   .

//
1.  и -  и  ʾƵ critical section ϸ ɰ ...  𸣰ڽ.
2. Read Write IO и - ϰ غþµ.    𸣰ڽ.
3. Mutex  -  ϱ 
4.  exception access violation  ִ.
   access violation  迭  Ѵ . ߻ϴ° ˰ ִ.

   malloc ޸   ٰ Ѵ.
   ޸𸮴 ѹ Ҵϰ. ϸ. lock unlock ϴ° .
   ޸𸮿 Ҵϸ. count ִ   𸣰 ִ. ġ COM AddRef  δ.
   IncreaseCounter()  .   ʴ´.
   critical section   ʴ´. ᱹ. Ƽ忡  ̷  Ѵ.
   if(use == 1)	//Ƽ 嵵 .  .
   {
      continue;
   }
   use = 1;
   use = 0;
   //Ƽ   Ǯ  ϰ ϴ° ̴.

   Win API 670p å . ޸ Ҵ翡 . ̷  ִ.
   GlobalAlloc()
   GlobalReAlloc()
   GlobalSize()
   GlobalFree()
   GlobalLock()
   GlobalUnLock()
   GlobalHandle() ־ ̴µ. malloc ȥ ϴٰ ϸ.
   Ҵ ޸𸮸 count   ִٰ Ѵ.
   MemoryBarrier() YieldProcessor() غôµ.  𸥴.

   ¶ΰ  α׷ å . gc.dll ޸    ִ.

5. A忡 B ͸  . critical section ߴµ.
    . telnet  ȴ.

6. WSAAccept Overlapped  𸥴.


?. ׳. ... ݵ  ư. _;;

//
 ȭ Ǿ. Recv Send IO ¿   ʿϴ.
-  ð ϰų ؼ 

ϴ. ϰ ؾ Ѵ.

//峭 ϵ忡.
- õԿ ҽ 5000  ƴ.    Ȯغ Ѵ.
- Ʈ ҽ accept .



